/*
 * Copyright (c) ycq_work@163.com
 */

package com.mxg.blog.common;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Author: ycq_work@163.com
 * @DATE: 2023/5/8 21:23
 * 正则表达式
 */
public class RegularExpression {
    //判断是否是电话号码
    /**
    * 表示第一个字符必须是数字 1。
    * 第二个字符必须是 3 到 9 之间的数字。
    * 后面连续 9 个字符都必须是数字。
    */
    public boolean isPhoneNum(String str) {
        // 正则表达式，匹配 0-9 的数字，且字符串长度为11位
        String pattern = "^1[3-9]\\d{9}$";
        return str.matches(pattern);
    }

    //判断是否是邮箱
    public boolean isEmail(String str) {
        // 正则表达式，匹配邮箱格式
        String pattern = "^([a-zA-Z0-9_-]+[\\.\\+])*[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]{2,})+$";
        return str.matches(pattern);
    }

    // 获取标题的内容 超过8个字符的只保留8个字符
    public String getTitleText(String text)
    {
        String pattern = "/\\?t.*";
        String result = text.replaceAll(pattern, "");
        return result.length() > 8 ? result.substring(0, 8) : result;
    }

    // 去除图片链接的 Http:前缀
    public String getImageUrlNoHttp(String url)
    {
        String regex = "^https?://[^/]+/(.*)$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(url);
        if (matcher.find()) {
            return matcher.group(1);
        }else{
            return null;
        }
    }

    //判断是否是链接
    public boolean isUrl(String str) {
        // 正则表达式，匹配邮箱格式
        String pattern = "^(https?|ftp)://[^\\s/$.?#].[^\\s]*$";
        return str.matches(pattern);
    }

}
